#include<iostream>
#include<cstring>
using namespace std;
int r[205][205];//用多少开多少
void warshall(int n){
    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(r[i][k]&&r[k][j]){
                    r[i][j]=1;
                }
            }
        }
    }
}
int visited[205];
int ans[205];
int main(){
    int n;
    cin>>n;
    int k;
    for(int i=1;i<=n;i++){
        cin>>k;
        memset(r,0,sizeof(r));
        for(int j=1;j<=k;j++){
            int a;
            cin>>a;
            while(a!=0){
                r[j][a]=1;
                cin>>a;
            }  
        }
         warshall(k);
          for(int j=1;j<=k;j++){
            r[j][j]=1;
            visited[j]=0;
        }
        for(int j=1;j<=k;j++){
            if(!visited[j]){
                ans[i]++;
                for(int l=1;l<=k;l++){
                    if(r[j][l]&&r[l][j]&&!visited[l])visited[l]=1;
                }
            }
        }
    }
    for(int i=1;i<=n;i++){
        cout<<ans[i]<<endl;
    }
    return 0;
}
//warshal一定要记得给自己赋值为可及。
//用矩阵。